<?php
// +----------------------------------------------------------------------
// | INPHP
// | Copyright (c) 2023 https://inphp.cc All rights reserved.
// | Author: 幺月儿(https://gitee.com/lulanyin) Email: inphp@qq.com
// | 该文件的开源协议以所在项目的LICENSE文件为准，请遵守开源协议要求
// +----------------------------------------------------------------------
// | 
// +----------------------------------------------------------------------
namespace app\cms\tags;

use app\cms\helper\cache;
use Inphp\Core\Context;

class aTag
{
    /**
     * 自动初始化参数
     * @param array $params
     * @return array
     */
    public static function initParams(array $params): array
    {
        $siteId = $params["siteId"] ?? 0;
        $siteId = is_numeric($siteId) && $siteId > 0 ? ceil($siteId) : 0;
        if ($siteId <= 0) {
            $site = Context::get("CMS_SITE");
            $siteId = $site ? $site["id"] : 0;
        }
        $params["siteId"] = $siteId;
        return $params;
    }
    /**
     * 获取使用的次数
     * @param string|null $name
     * @return int
     */
    public static function getIndex(?string $name = null): int
    {
        $key = md5("CMS_TAG_".($name ?? __CLASS__));
        $index = Context::get($key);
        $index = is_numeric($index) ? ceil($index) : 0;
        //自动++
        Context::set($key, $index + 1);
        return $index;
    }

    /**
     * 从缓存获取
     * @param array $params
     * @param string $group
     * @return array|null
     */
    public static function getCache(array $params, string $group = ''): ?array
    {
        return cache::get($params, $group);
    }

    /**
     * 保存数据缓存
     * @param array $params
     * @param array $data
     * @param string $group
     */
    public static function setCache(array $params, array $data, string $group = '')
    {
        cache::set($params, $data, $group);
    }
}